#ifndef __MOUSEMANAGER_H__
#define __MOUSEMANAGER_H__

#include <Metgine/Input/InputManager.h>
#include <Metgine/Core/Singleton.h>


namespace Metgine
{
namespace Input
{
class METGINE_API MouseManager : public InputManager, public Core::Singleton<MouseManager>
{
    friend class Core::Singleton<MouseManager>;
    public:
        void Update();
        bool IsButtonDown(sf::Mouse::Button);
        bool IsButtonUp(sf::Mouse::Button);
        bool IsButtonReleased(sf::Mouse::Button);
        bool IsAnyButtonDown();
        sf::Mouse::Button GetLastPressed();
        int MouseX();
        int MouseY();
    private:
        MouseManager() {};
        ~MouseManager() {};
        bool m_pressedButtons[sf::Mouse::ButtonCount];
        sf::Mouse::Button m_lastPressed;
};

}; // Input
}; // Metgine


#endif // MOUSEMANAGER_H
